﻿#pragma once

#include "ais_base.h"

namespace CAGD
{

/**
 * 交互帧.
 */
class AIS_Frame : public AIS_Base
{
  public:
    /**
     * @brief 基本构造.
     * @see
     */
    AIS_Frame(Point pos, Size size);

    /**
     * @brief 检测函数.
     * @return
     * @param pos
     * @see
     */
    bool MoveTo(Point pos) override;

    /**
     * @brief 移动函数.
     * @param pos
     * @see
     */
    bool Move(Point pos) override;

    /**
     * @brief 获得类型.
     * @return
     * @see
     */
    AIS_Type GetType() const override;

    /**
     * @brief 刷新信息.
     * @return
     * @see
     */
    void UpdateInfo() override;

    /**
     * @brief 接收消息.
     * @param mess
     * @see
     */
    void RecvMessage(Message mess) override;

    /**
     * @brief 获得位置.
     * @return
     * @see
     */
    Point &GetPosition();

    /**
     * @brief 获得尺寸.
     * @return
     * @see
     */
    Size &GetSize();

    /**
     * @brief 获得文本.
     * @return
     * @see
     */
    std::vector<std::string> &GetTexts();

  protected:
    Point m_pos;
    Size m_size;
    std::vector<std::string> m_texts;
};

} // namespace CAGD
